<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //一。默认对象
        //ES5
        // function fn(a,b){
        //     // console.log(a,b);
        //     // 默认参数
        //     var a = a || 5;
        //     var b = b || 6;
        //     console.log(a,b);
        // }
        // fn("",2);
        //ES5中，如果实参传入的是a = 0或"",则结果输出的是a的值为5，而不会输出""或0

        //ES6 默认参数
        // function fn(a = 5,b = 6){
        //     console.log(a,b);
        // }
        // fn(0,2)          在ES6中，这种情况不会出现



        //二，对象的更新；
        //1.对象的声明方式

        // var name = "张三";
        // var age = 20;
        // var height = "178cm";

        //键名和键值相同，那么可以省略；
        //(1) let obj = {
        //     name:name,
        //     age:age,
        //     height:height
        // }
        // console.log(obj);

        //则省略为
        // (2)let obj = {
        //     name,
        //     age,
        //     height
        // }
        // console.log(obj);
        //(1)和(2)打印的结果是一样的

        //2.对象里函数的简写；
        //ES5
        // var obj = {
        //     name:"张三",
        //     age:20,
        //     fn:function(){
        //         console.log("fn")
        //     }
        // }
        


        //ES6
        // var obj = {
        //     name:"张三",
        //     age:20,
        //     fn(){
        //         console.log("fn");
        //     }
        // }
        // obj.fn();
        //结果都是FN



        //3.动态的键名[键名]
        var name = "myname";

        var obj = {
            [name+"hello"] : name,
            age:20,
            height:"178cm"
        }
        console.log(obj);
    </script>
</body>
</html>